import { defineStore } from 'pinia'
import { getWeChatCorpSignatureAPI, getWeChatSignatureAPI } from '@/api/api'

export const useConfig = defineStore('config', () => {
  // 实时时间戳
  const timestamp = Math.floor(new Date().getTime() / 1000);

  // 企业微信 config(调用wx.invoke必须有)
  const config = async () => {
    // 企业签名
    const data = await getWeChatCorpSignatureAPI({
      timestamp: timestamp,
      nonce: 'qqqqqqq',
      url: location.href.split('#')[0]
    })
    await wx.config({
      beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
      // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
      appId: 'wxf7b2f69e2fde1aa0', // 必填，企业微信的corpID
      timestamp: timestamp, // 必填，生成签名的时间戳
      nonceStr: 'qqqqqq', // 必填，生成签名的随机串
      signature: data, // 必填，签名，见 附录-JS-SDK使用权限签名算法
      jsApiList: ["saveApprovalSelectedItems", "getApprovalSelectedItems"], // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来
    });
  }
  // 企业微信 agentConfig
  const agentConfig = async () => {
    return new Promise(async resolve => {
      // 应用签名
      const data2 = await getWeChatSignatureAPI({
        timestamp: timestamp,
        nonce: 'qqqqqqq',
        url: location.href.split('#')[0]
      })
      wx.agentConfig({
        corpid: 'wxf7b2f69e2fde1aa0', // 必填，企业微信的corpid，必须与当前登录的企业一致
        agentid: '1000040', // 必填，企业微信的应用id （e.g. 1000247）
        timestamp: timestamp, // 必填，生成签名的时间戳
        nonceStr: 'qqqqqqq', // 必填，生成签名的随机串
        signature: data2,// 必填，签名，见附录-JS-SDK使用权限签名算法
        jsApiList: ['selectExternalContact', 'saveApprovalSelectedItems', 'getApprovalSelectedItems'], //必填，传入需要使用的接口名称
        success: function (res) {
          // 回调
          resolve()
          console.log('agentConfig');
        },
        fail: function (res) {
          if (res.errMsg.indexOf('function not exist') > -1) {
            alert('版本过低请升级')
          }
        }
      })
    })
  }
  return { config, agentConfig }
})
